tisk vlastni grafiky pomoci Siney

Otázka od: petr palicka

27. 4. 2004 10:34

Ahoj,

   chci se zeptat, jestli nekdo z pritomnych delal,
a s jakymi vysledky, tisk vlastni grafiky pomoci
Sinea sestav. Zkousim, zkousim, ale nic mnoho.
   Poud pouziju prvek KresliciPlocha (TPaintBox),
tak se mi vygresli to co nakreslim ja, ale ne
bitmapa vlozena pomoci StretchBlt. Navic, pokud
"pretahnu", tak se mi kresli cara i mimo hranice
prvku, coz neni 2x esteticke, ale vzhledem
k ucelu (rozklad kresby na listy) mi to az tak
moc nevadi.
   Pokud zkusim pouzit prvek Obrazek (TPicture),
tak se nevykresli vubec nic.
   Nemam zdrojove kody, sef letos jejich nakup
zamitnul :/, takze se nemuzu koukat dovnitr a
hledat, kde by mohl byt zakopanej pes.

   Duvod proc se snazim tisknout pomoci Siney je
prosty. Jednak jsem si chtel usetrit praci s
tiskem ve vlastni rezii. A za druhe chci mit
jednotne tiskove prostredi pro vsechny tiskove
vystupy ze vsech aplikaci.

dekuji za kazdou radu

Peca

Odpovedá: Vaclav Riha - Soft Consult

27. 4. 2004 11:43

>chci se zeptat, jestli nekdo z pritomnych delal,
>a s jakymi vysledky, tisk vlastni grafiky pomoci Sinea sestav.

Tisknu pomoci OnGetPicture(APictName: String; APicture: TPicture): Boolean;
a funguje to. Problemy mohou nastat s Metafiles, nektere ovladace tiskaren
nepodporuji vsechny funkce (napr nalejvani barvy nebo vzoru do regionu).
Jinak Sinea neni spatna, jak formulare, tak obrazky jsou pod kontrolou,
mohou byt v BD i v souborech, dobre se lokalizuji.

S pozdravem Vaclav Riha


Odpovedá: petr palicka

27. 4. 2004 12:34

> Tisknu pomoci OnGetPicture(APictName: String; APicture: TPicture): Boolean;

to tady nikde nevidim (Sinea 2004) vidim tu jenom
OnNactiObraz(Sender: TSestava; const ANazev: String;
APicture: TPicture): Boolean;

ale to, jestli se nepletu, je pro nacteni/kresleni obrazku
pro podklad cele sestavy. ja doufal v kresleni do prvku
umisteneho v tele sestavy. asi to nakonec udelam vygenerovanim
bmp a vlozenim na pozadi.

> a funguje to. Problemy mohou nastat s Metafiles, nektere ovladace tiskaren
> nepodporuji vsechny funkce (napr nalejvani barvy nebo vzoru do regionu).

to me teprve ceka, zatim jsen vyplne neresil  

> Jinak Sinea neni spatna, jak formulare, tak obrazky jsou pod kontrolou,
> mohou byt v BD i v souborech, dobre se lokalizuji.

Sinea je vyborna, jenom obcas, pokud potrebujes nejaky "spek",
tak se musi trosku ocuravat ^_^

Peca

Odpovedá: Vaclav Riha - Soft Consult

27. 4. 2004 13:04

>to tady nikde nevidim (Sinea 2004) vidim tu jenom OnNactiObraz(Sender:
TSestava; const ANazev: String; APicture: TPicture): Boolean;
sorry, delaj jsem to z hlavy, to je ono.

>ale to, jestli se nepletu, je pro nacteni/kresleni obrazku pro podklad
cele sestavy. ja doufal v kresleni do prvku umisteneho v tele sestavy. asi
to nakonec udelam generovanim bmp a vlozenim na pozadi.
 ne, hodi se to vsude, v hlave i v tele, obrazek si muzes polozit kam chces
a pojmenovat si ho po svem

>Sinea je vyborna, jenom obcas, pokud potrebujes nejaky "spek", tak se musi
trosku ocuravat ^_^
Plne souhlasim, ale zatim to vzdy slo, (skoda toho casu) ucurat (krome
tisku obrazku na starsich HP na W95 a zrejme i W98, jsou jen cerne fleky)

Vaclav Riha


Odpovedá: Vaclav Krmela

27. 4. 2004 14:55

> From: petr palicka
>
> Poud pouziju prvek KresliciPlocha (TPaintBox),
> tak se mi vygresli to co nakreslim ja, ale ne
> bitmapa vlozena pomoci StretchBlt.

S prvkem KresliciPlocha se pracuje jako s platnem.
Kresli se na nej. Je predevsim urcen pro vektorovou
grafiku, ale rastrovy obrazek lze take pouzit:
  ACanvas.StretchDraw(Rect(x, y, w, h), Bitmap);

> Navic, pokud
> "pretahnu", tak se mi kresli cara i mimo hranice
> prvku, coz neni 2x esteticke,

Pokud to kreslis sam, muzes se svobodne rozhodnout,
zda presahnes okraje nebo ne.

> Pokud zkusim pouzit prvek Obrazek (TPicture),
> tak se nevykresli vubec nic.

Protoze jsi do predlohy vlozil prazdny prvek Obrazek.
Neuvedl jsi, co ma byt obsahem obrazku.
Muzes si vybrat:
- odkaz na soubor
- odkaz na datovou polozku obsahujici nazev souboru
- odkaz na funkci, ktera vypocte nazev souboru
- prime nacteni obrazku odkudkoliv pomoci OnGetPicture
Obrazek je mozne za behu jeste modifikovat, napr. dithering,
pomoci OnPreparePicture


> Nemam zdrojove kody, sef letos jejich nakup
> zamitnul :/, takze se nemuzu koukat dovnitr a
> hledat, kde by mohl byt zakopanej pes.

Muzes vyuzit konferenci Sinea na
http://www.sinea.cz/default.asp?page=70
Jenom za posledni dva tydny tam naleznes vice nez
10 odpovedi na vsechny tvoje vyse polozene otazky.

Vaclav Krmela


Odpovedá: Vaclav Krmela

27. 4. 2004 14:55

> From: petr palicka
>
> OnNactiObraz(Sender: TSestava; const ANazev: String;
> APicture: TPicture): Boolean;
>
> ale to, jestli se nepletu, je pro nacteni/kresleni obrazku
> pro podklad cele sestavy. ja doufal v kresleni do prvku
> umisteneho v tele sestavy.

Tato funkce se vola pro vsechny obrazky nezavisle
na jejich umisteni. Samozrejme i v tele sestavy.

Vaclav Krmela


Odpovedá: petr palicka

28. 4. 2004 9:38

Ahoj,

> S prvkem KresliciPlocha se pracuje jako s platnem.
> Kresli se na nej. Je predevsim urcen pro vektorovou
> grafiku, ale rastrovy obrazek lze take pouzit:
> ACanvas.StretchDraw(Rect(x, y, w, h), Bitmap);

StretchDraw neumoznuje definovat zdrojovy vyrez,
proto pouzivam StretchBlt. Bohuzel jsem to v zapalu
boje cele prekopal, takze to uz neoverim, ale
v tomto pripade je na vine asi moje vlastni debilita.
V metode Assing meho vlastniho objektu jsem si
nepredaval ukazatel na rastrovy obrazek, takze byl
nil a tudiz se ani memohl nakreslit. Omlouvam se,
solidne jsem se ustrelil  

> Pokud to kreslis sam, muzes se svobodne rozhodnout,
> zda presahnes okraje nebo ne.

to bohuzel dost dobre nemuzu, pokud si nechci pocitat
kazdej prusecik cary s okrajem. jednoduse pocitam
s tim, ze mi to pri vykreslovani oreze system, coz
opet u TPintBoxu na formulari funguje jak ma (alespon
podle helpu). Ocekaval jsem proto stejne chovani u
KresliciPlochy Siney. nicmene v tomto pripade jsou
okraje stejne urcene k odstrizeni/slepeni velkeho
brazu z jednotlivych listu, takze to fakt nijak
zvlast nevadi.

> Protoze jsi do predlohy vlozil prazdny prvek Obrazek.
> Neuvedl jsi, co ma byt obsahem obrazku.
> Muzes si vybrat:
> - odkaz na soubor
> - odkaz na datovou polozku obsahujici nazev souboru
> - odkaz na funkci, ktera vypocte nazev souboru
> - prime nacteni obrazku odkudkoliv pomoci OnGetPicture

uz jsem to asi vykoumal. nejprve si nakreslim obrazky a
ulozim do bmp v pozadovanem dpi, pak to predhodim Sinee.

> Muzes vyuzit konferenci Sinea na
> http://www.sinea.cz/default.asp?page=70
> Jenom za posledni dva tydny tam naleznes vice nez
> 10 odpovedi na vsechny tvoje vyse polozene otazky.

krom toho, ze v tomto pripade povazuju to www
rozhrani za opravdu nestastne a velmi me mrzi zruseni
maillistu, tak ty dotazy jsou vsecky ode me. asi mi
zpocatku unikala sama podstata problemu. do delphi
konfery jsem se obratil, protoze jsem doufal, ze
podobny problem uz nekdo vyresil a nakopne me tim
spravnym smerem.  

dekuji vsem zucastnenym

Petr Palicka aka Peca